package com.jky.trial.mapper;

import com.jky.trial.entity.Task;
import com.jky.trial.entity.TaskExample;
import com.jky.trial.vo.TaskVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface TaskMapper {
    long countByExample(TaskExample example);

    int deleteByExample(TaskExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(Task record);

    int insertSelective(Task record);

    List<Task> selectByExample(TaskExample example);

    TaskVo selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") Task record, @Param("example") TaskExample example);

    int updateByExample(@Param("record") Task record, @Param("example") TaskExample example);

    int updateByPrimaryKeySelective(Task record);

    int updateByPrimaryKey(Task record);

    List<TaskVo> pageList(TaskVo example);
    int pageCount(TaskVo example);

    /**
     * 描述员 任务分页
     *
     * @param example
     * @return
     */
    List<TaskVo> msyPageList(TaskVo example);
    List<TaskVo> msyWithProjectNameList(TaskVo example);
    int msyWithProjectNameCount(TaskVo example);

    /**
     * 批量导入
     *
     * @param list
     * @return
     */
    long addBatch(List<Task> list);

    /**
     * 统计某个项目任务状态数量
     * record.project_id 必填
     * @param record
     * @return
     */
    TaskVo staByStatus(Task record);

}